package cn.iocoder.yudao.module.moa.controller.admin.jbapply.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - MOA 加班申请新增/修改 Request VO")
@Data
public class JbApplySaveReqVO {

    @Schema(description = "编号，主键自增", requiredMode = Schema.RequiredMode.REQUIRED, example = "30621")
    private Long id;

    @Schema(description = "项目编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "22362")
    @NotEmpty(message = "项目编号不能为空")
    private String projectId;

    @Schema(description = "产品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "16779")
    @NotNull(message = "产品编号不能为空")
    private Long productId;

    @Schema(description = "商机编号", example = "17571")
    private Long businessId;

    @Schema(description = "申请人编号", example = "28737")
    private Long ownerUserId;

    @Schema(description = "工作流编号", example = "25001")
    private String processInstanceId;

    @Schema(description = "审批状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "审批状态不能为空")
    private Integer auditStatus;

    @Schema(description = "开始时间")
    private LocalDateTime startTime;

    @Schema(description = "结束时间")
    private LocalDateTime endTime;

    @Schema(description = "加班类型(平时、节假日、周末)")
    private Integer jblx;

    @Schema(description = "加班事由")
    private String jbsy;

    @Schema(description = "加班时长(打卡时间计算)")
    private BigDecimal jbsc;

    @Schema(description = "是否调休")
    private Integer sftx;

    @Schema(description = "备注", example = "随便")
    private String remark;

}